package cn.lingyangwl.agile.model.module.config.param;

import cn.lingyangwl.agile.model.enums.ConfigKeyEnum;
import cn.lingyangwl.framework.tool.core.StringUtils;
import com.alibaba.fastjson2.JSON;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import org.springframework.stereotype.Component;

/**
 * 系统设置参数
 *
 * 对于想要实现动态更新某个渠道配置, 即当前配置中 enabledXxxConfigKey 字段, 需要在
 * system服务 SystemSettingConfigHandler 中做处理
 *
 * @author shenguangyang
 */
@Getter
@Setter
@Component
@Accessors(chain = true)
public class WebSiteParam extends BaseConfigParam<WebSiteParam> {
    /**
     * 租户图标
     */
    private String logo;

    /**
     * 名称
     */
    private String name;


    /**
     * 网站门面描述标题
     */
    private String siteDescTitle;

    /**
     * 网站门面描述内容
     */
    private String siteDescContent;


    // ======================================== 功能设置
    /**
     * 使能的邮件配置key
     * @see ConfigKeyEnum
     */
    private String enabledEmailConfigKey;

    /**
     * 使能的短信配置key
     * @see ConfigKeyEnum
     */
    private String enabledSmsConfigKey;

    /**
     * 使能的短信配置key
     * @see ConfigKeyEnum
     */
    private String enabledStorageConfigKey;


    // ======================================== 默认图片
    /**
     * 默认头像
     */
    private String defaultHeadImg;

    /**
     * 租户id
     */
    private String tenantId;

    // ======================================== 域名设置
    /**
     * h5地址
     */
    private String h5Url;


    @Override
    protected WebSiteParam jsonToObject(String json) {
        if (StringUtils.isEmpty(json)) {
            return new WebSiteParam();
        }
        return JSON.parseObject(json, WebSiteParam.class);
    }

    @Override
    public ConfigKeyEnum configKey() {
        return ConfigKeyEnum.WEB_SITE;
    }
}
